package git.soulbgm.mapper;

import org.apache.ibatis.annotations.Param;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * 数据库表的备份映射器
 *
 * @author SoulBGM
 * @date 2022-12-29
 */
public interface TableBackupMapper {

    /**
     * 查询表数据
     *
     * @param tableName 表名
     * @param limit     显示数
     * @param offset    偏移
     * @return {@link List}<{@link Map}<{@link String}, {@link Object}>>
     */
    List<LinkedHashMap<String, Object>> select(@Param("tableName") String tableName, @Param("limit") int limit, @Param("offset") int offset);

    /**
     * 清空表
     *
     * @param tableName 表名
     * @return int 受影响行数
     */
    int delete(@Param("tableName") String tableName);

    /**
     * 插入表数据
     *
     * @param insertSql 插入SQL
     * @return int 受影响行数
     */
    int insert(@Param("insertSql") String insertSql);

}
